using System;
using MediatR;

namespace RBAC.Read.Api.Application.Command.ArrivalInspection
{
    /// <summary>
    /// 导出到货检验（CSV），使用与列表相同的筛选条件。
    /// - 当指定 Id 时，仅导出该单据（表头一行，含汇总列）。
    /// - 未指定 Id 时，导出符合条件的所有单据（上限由处理器控制）。
    /// </summary>
    public class ExportArrivalInspectionCommand : IRequest<byte[]>
    {
        /// <summary>按主键精确查询（可选）</summary>
        public long? Id { get; set; }

        /// <summary>检验主题（模糊）</summary>
        public string? Subject { get; set; }
        /// <summary>检验单号（模糊）</summary>
        public string? DocCode { get; set; }
        /// <summary>检验日期-开始</summary>
        public DateTime? InspectionDateStart { get; set; }
        /// <summary>检验日期-结束</summary>
        public DateTime? InspectionDateEnd { get; set; }
        /// <summary>检验人员（模糊）</summary>
        public string? Inspector { get; set; }
        /// <summary>采购单号（模糊）</summary>
        public string? PurchaseOrderNo { get; set; }

        /// <summary>
        /// 导出最大行数上限（可选，默认10000，上限50000）
        /// </summary>
        public int? MaxRows { get; set; }
    }
}
